Il case espressione è il pilastro del flusso di controllo di Elixir. A differenza delle istruzioni switch imperativi, case è un'espressione funzionale che restituisce il risultato della ramo corrispondente, consentendo agli sviluppatori di decomporre tipi di dati complessi come mappe e tuple immediatamente, rispettando al contempo una logica esaustiva.
1. Abbinamento di Modelli e Collegamento
Il case espressione ti permette di confrontare un valore con un insieme di modelli. Esegue il codice associato al primo modello corrispondente e restituisce il valore di quel codice. Puoi collegare variabili all'interno dell'abbinamento per usarle immediatamente nella logica del ramo.
%{state: some_state} = person ->
IO.puts "#{person.name} vive in #{some_state}"
fine
2. Flusso Logico Visivo
3. Clausole di Guardia e Completezza
Usando la when parola chiave, puoi arricchire gli abbinamenti strutturali con logica predicatoria (ad esempio, is_number(age) e age >= 21). Elixir richiede un abbinamento per ogni input potenziale; se nessun modello corrisponde, viene sollevata una CaseClauseError viene sollevata.